(function(){
    //窗体单例检查
    window.setting=window.setting||{};
    window.setting.showing=window.setting.showing||false;
    if(window.setting.showing) {
        return;
    }
    //初始化窗体
    var win=new Win();
    var body=$("body");
    win.mst("bg#eee;w300;h500;l"+(body.width()/2-150)+";t"+(body.height()/2-250));
    window.setting.showing=true;
    //banner canvas动画
    (function(){
        //静态画布
        (function () {
            var c=_.createElement("canvas");
            c.height=300;
            c.width=300;
            $(c).mst("poa;t0;l0");
            var o=c.getContext("2d");
            //开始绘制天空
            var gradient=o.createLinearGradient(0,0,0,300);
            gradient.addColorStop(0,"#118ecc");
            gradient.addColorStop(1,"#ffffff");
            o.fillStyle=gradient;
            o.fillRect(0,0,300,300);
            //懒得画 bye bye

            //天空绘制完成 开始绘制草地

            //草地绘制完成 开始绘制房子

            //房子绘制完成 开始绘制塔
            o.beginPath();
            //坐标数组
            var p=[
                [200,300],
                [205,100],
                [210,100],
                [215,300]
            ];
            //实例化数据 并且绘制
            o.moveTo(p[0][0],p[0][1]);
            for(var i=1;i<p.length;i++)
            {
                o.lineTo(p[i][0],p[i][1]);
            }
            o.fillStyle="#cccccc";
            o.fill();
            o.lineWidth=0.5;
            o.stroke();
            //塔绘制完成

            win.append(c);
        })();
        //动态画布
        var $c=tag.canvas().mst("w300;h300;poa;t0;l0").attr("class","asWindow");
        var c=$c[0];
        c.width=300;
        c.height=300;
        var o=$c[0].getContext("2d");
        var catchC=_.createElement("canvas");
        catchC.width=300;
        catchC.height=300;
        var catchO=catchC.getContext("2d");
        //data
        var arr=new Array(100);
        //init grass data
        for(var i=0;i<arr.length;i++)
        {
            arr[i]=Math.random()*10
        }
        var f=4;  //风力
        var deg=0;  //初始角度
        function drawGrass(x,w){
            var f1=f/10*f/10;
            f1=f1*10;
            catchO.beginPath();
            catchO.moveTo(x,300);
            catchO.quadraticCurveTo(x+w/2,300-w*5+f1,x+w/2+f1*w/5,300-w*5+f1*w/10);
            catchO.quadraticCurveTo(x+w/2,300-w*5+f1,x+w,300);
            //catchO.lineTo(x+w/2,300-w*5);
            //catchO.lineTo(x+w,300);
            catchO.stroke();
            catchO.closePath();
            catchO.fill();
        }
        function cb() {
            //双缓冲
            //加载缓存 第一帧为空白
            /*if(this.f){
                f--;
                f<=0&&(this.f=!this.f);
            }else {
                f++;
                f>=9&&(this.f=!this.f);
            }*/
            f=9+Math.random();


            o.beginPath();
            o.clearRect(0,0,300,300);
            o.drawImage(catchC,0,0);
            //创建新缓存
            (function () {
                catchO.clearRect(0,0,300,300);
                catchO.beginPath();
                //开始绘制旋转风扇
                //圆点坐标 207 100
                deg+=0.5;
                deg===360&&(deg=0);
                //
                catchO.fillStyle="#ccc";
                catchO.beginPath();
                catchO.arc(207,100,4,(60+deg)*Math.PI/180,(-60+deg)*Math.PI/180);
                catchO.arc(207,100,100,(-1+deg)*Math.PI/180,(1+deg)*Math.PI/180);
                catchO.closePath();
                catchO.fill();
                catchO.stroke();

                catchO.beginPath();
                catchO.arc(207,100,4,(240+deg)*Math.PI/180,(60+deg)*Math.PI/180);
                catchO.arc(207,100,100,(119+deg)*Math.PI/180,(121+deg)*Math.PI/180);
                catchO.closePath();
                catchO.fill();
                catchO.stroke();

                catchO.beginPath();
                catchO.arc(207,100,4,(300+deg)*Math.PI/180,(180+deg)*Math.PI/180);
                catchO.arc(207,100,100,(239+deg)*Math.PI/180,(241+deg)*Math.PI/180);
                catchO.fill();
                catchO.closePath();
                catchO.stroke();

                catchO.beginPath();
                catchO.lineWidth=0.5;
                catchO.arc(207,100,4,0,2*Math.PI);
                catchO.stroke();


                //
                /*catchO.moveTo(207,100);
                catchO.arc(207,100,100,deg*Math.PI/180,deg*Math.PI/180);
                catchO.lineTo(207,100);
                catchO.arc(207,100,100,(120+deg)*Math.PI/180,(120+deg)*Math.PI/180);
                catchO.lineTo(207,100);
                catchO.arc(207,100,100,(240+deg)*Math.PI/180,(240+deg)*Math.PI/180);
                catchO.lineTo(207,100);
                catchO.strokeStyle="#fff";
                catchO.stroke();*/


                //开始绘制随风而动的青草
                //draw grass
                var gradient=catchO.createLinearGradient(0,250,0,300);
                gradient.addColorStop(0,"#08ff06");
                gradient.addColorStop(1,"#0a6600");
                catchO.fillStyle=gradient;
                catchO.lineWidth=0.5;
                for(var j=0;j<5;j++)
                {
                    for(var l=0;l<20;l++)
                    {
                        //arr[l*5+j]
                        drawGrass(3*(l*5+j),arr[l*5+j]);
                    }
                }
            })();
            window.requestAnimationFrame(cb);
        }cb();
        win.append($c);})();
    //关闭按钮
    (function () {
        var close=tag.canvas().mst("w20;h20;poa;t0;r0;cup").click(function () {
            _.body.removeChild(win[0]);
            window.setting.showing=false;
        }).attr({
            "width":"20",
            "height":"20"
        });
        win.append(close);
        var o=close[0].getContext("2d");
        o.moveTo(4,6);
        o.lineTo(16,18);
        o.moveTo(4,18);
        o.lineTo(16,6);
        o.strokeStyle="#fff";
        o.lineHeight=2;
        o.stroke();
    })();
    //输入框x2
    (function () {
        var box=tag.div().mst("m0a;w200;mt330");
        //输入框共同点
        var same1={
            "outline":"none",
            "border":"none"
        };
        //四个异常类型，三个小东西，没有身份证，所以在这里注册身份
        var tags={
            errArr:[],//异常容器，用来记录异常状态，方便整体管理
            errUsernameNull:buble("账户不能为空",110,30).mst("poa;t360;l100"),
            errUsernameException:buble("账户只能是纯数字组合",150,30).mst("poa;t360;l100"),
            errPasswordNull:buble("密码不能为空",110,30).mst("poa;t390;l100"),
            errPasswordException:buble("密码长度非法",110,30).mst("poa;t390;l100"),
            username:$("<input type='text'>").css(same1).click(clearErr),
            password:$("<input type='password'>").css(same1).click(clearErr),
            checkBox:$("<input type='checkbox'>")
        };
        function clearErr(){
            for(var i=0;i<tags.errArr.length;i++){
                tags.errArr[i].remove();
            }
            tags.errArr=[];
        }
        //三个大东西 输入框盒子 复选框 登录按钮
        var upBox=tag.div().mst("w100%;h60;bg#fff;bd1px solid #999;lh30;ofh").append(
            tag.span().html("账户：").mst("fl;fz14;ml4;w50;ofh"),
            tags.username.mst("fl;w140;h30"),
            tag.div().mst("h1;w100%;bg#999").css("clear","both"),
            tag.span().html("密码：").mst("fl;fz14;ml4;w50;ofh"),
            tags.password.mst("fl;w140;h30")
            ),
            checkBox=tag.div().mst("lh30;fz14").append(
                tags.checkBox.mst("fl;mt9;mr6"),
                $("<span title='勾选后下次访问不会自动登录'>临时登录</span>").mst("fl"),
                tag.span().html("注册").mst("fr;mt3;cup;cblue").click(function () {
                    loadJs("js/app/register/main.js");
                }),
                tag.div().css("clear","both")
            ),
            submit=tag.input("button","安全登录").mst("w100%;h32;cup").css(same1)
                .mst("bg#ccc;bd1px solid #999").hover(function () {
                    $(this).mst("bd1px solid #00f")
                },function () {
                    $(this).mst("bd1px solid #999")
                }).click(function () {
                    //username check
                    if(tags.username.val()===""){
                        win.append(tags.errUsernameNull);
                        tags.errArr.push(tags.errUsernameNull);
                    } else if(isNaN(tags.username.val())){
                        win.append(tags.errUsernameException);
                        tags.errArr.push(tags.errUsernameException);
                    }
                    //password check
                    if(tags.password.val()===""){
                        win.append(tags.errPasswordNull);
                        tags.errArr.push(tags.errPasswordNull);
                    }else if(tags.password.val().length<6||
                    tags.password.val().length>16){
                        win.append(tags.errPasswordException);
                        tags.errArr.push(tags.errPasswordException);
                    }
                    //异常检查
                    if(tags.errArr.length>0){
                        return;
                    }

                    //无异常
                    var data="i="+tags.username.val()+"&p="+tags.password.val();
                    !tags.checkBox[0].checked&&(data+="&c=1");
                    /*$.post("login.do",data,function (x) {
                        alert(x)
                    });*/
                    myAjax("post","login.do",data,function (x) {
                        if(x==="1"){
                            window.location.reload();
                        }else
                        {
                            alert("用户名或密码错误");
                        }
                    })
                });

        box.append(upBox,checkBox,submit);
        win.append(box);
    })();
    //
    //
    //
    //
    //
})();